/*
*
*   防抖函数封装
*
*   useFun(ms, ...args)
*
*   ms 延时毫秒数
*
*   args 多个待执行函数 若是函数自动执行 不是函数自动忽略
*
* */

class Debounce {
    constructor() {
        this.timer = null;
    }

    useFun = (ms, ...args) => {
        if(this.timer){
            clearTimeout(this.timer);
        }
        this.timer = setTimeout(() => {
            args.constructor === Array && args.forEach((callback) => {
                typeof callback === 'function' && callback();
            })
        }, ms || 300);
    };
}

module.exports = {
    debounce : Debounce
}